﻿/*
 * PrimeMeridians
 * 
 * initial implementation : 20.11.2008
 *
 * Copyright (c) Adam Sida, asida@centrum.cz.
 * All rights reserved.
 * 
 * for license see Petra.Gis.License.txt
 */
using System;


namespace Petra.Gis.ReferenceSystemServices
{
  public static class PrimeMeridians
  {

    /// <summary>
    /// Greenwich prime meridian
    /// </summary>
    public static readonly PrimeMeridian Greenwich = new PrimeMeridian(0.0, AngularUnits.Degrees, new Metadata("Greenwich", "EPSG", 8901, String.Empty, String.Empty, String.Empty));

    
    /// <summary>
    /// Lisbon prime meridian
    /// </summary>
    public static readonly PrimeMeridian Lisbon = new PrimeMeridian(-9.0754862, AngularUnits.Degrees, new Metadata("Lisbon", "EPSG", 8902, String.Empty, String.Empty, String.Empty));

    
    /// <summary>
    /// Paris prime meridian.
    /// Value adopted by IGN (Paris) in 1936. Equivalent to 2 deg 20min 14.025sec. Preferred by EPSG to earlier value of 2deg 20min 13.95sec (2.596898 grads) used by RGS London.
    /// </summary>
    public static readonly PrimeMeridian Paris = new PrimeMeridian(2.5969213, AngularUnits.Degrees, new Metadata("Paris", "EPSG", 8903, String.Empty, String.Empty, "Value adopted by IGN (Paris) in 1936. Equivalent to 2 deg 20min 14.025sec. Preferred by EPSG to earlier value of 2deg 20min 13.95sec (2.596898 grads) used by RGS London."));

    
    /// <summary>
    /// Bogota prime meridian
    /// </summary>
    public static readonly PrimeMeridian Bogota = new PrimeMeridian(-74.04513, AngularUnits.Degrees, new Metadata("Bogota", "EPSG", 8904, String.Empty, String.Empty, String.Empty));

    
    /// <summary>
    /// Madrid prime meridian
    /// </summary>
    public static readonly PrimeMeridian Madrid = new PrimeMeridian(-3.411658, AngularUnits.Degrees, new Metadata("Madrid", "EPSG", 8905, String.Empty, String.Empty, String.Empty));

    
    /// <summary>
    /// Rome prime meridian
    /// </summary>
    public static readonly PrimeMeridian Rome = new PrimeMeridian(12.27084, AngularUnits.Degrees, new Metadata("Rome", "EPSG", 8906, String.Empty, String.Empty, String.Empty));

  
    /// <summary>
    /// Bern prime meridian.
    /// 1895 value. Newer value of 7 deg 26 min 22.335 sec E determined in 1938.
    /// </summary>
    public static readonly PrimeMeridian Bern = new PrimeMeridian(7.26225, AngularUnits.Degrees, new Metadata("Bern", "EPSG", 8907, String.Empty, String.Empty, "1895 value. Newer value of 7 deg 26 min 22.335 sec E determined in 1938."));


    /// <summary>
    /// Jakarta prime meridian
    /// </summary>
    public static readonly PrimeMeridian Jakarta = new PrimeMeridian(106.482779, AngularUnits.Degrees, new Metadata("Jakarta", "EPSG", 8908, String.Empty, String.Empty, String.Empty));


    /// <summary>
    /// Ferro prime meridian.
    /// Used in Austria and former Czechoslovakia.
    /// </summary>
    public static readonly PrimeMeridian Ferro = new PrimeMeridian(-17.4, AngularUnits.Degrees, new Metadata("Ferro", "EPSG", 8909, String.Empty, String.Empty, "Used in Austria and former Czechoslovakia."));

    
    /// <summary>
    /// Brussels prime meridian
    /// </summary>
    public static readonly PrimeMeridian Brussels = new PrimeMeridian(4.220471, AngularUnits.Degrees, new Metadata("Brussels", "EPSG", 8910, String.Empty, String.Empty, String.Empty));
    

    /// <summary>
    /// Stockholm prime meridian
    /// </summary>
    public static readonly PrimeMeridian Stockholm = new PrimeMeridian(18.03298, AngularUnits.Degrees, new Metadata("Stockholm", "EPSG", 8911, String.Empty, String.Empty, String.Empty));
    

    /// <summary>
    /// Athens prime meridian.
    /// Used in Greece for older mapping based on Hatt projection.
    /// </summary>
    public static readonly PrimeMeridian Athens = new PrimeMeridian(23.4258815, AngularUnits.Degrees, new Metadata("Athens", "EPSG", 8912, String.Empty, String.Empty, "Used in Greece for older mapping based on Hatt projection."));
    

    /// <summary>
    /// Oslo prime meridian.
    /// Formerly known as Kristiania or Christiania.
    /// </summary>
    public static readonly PrimeMeridian Oslo = new PrimeMeridian(10.43225, AngularUnits.Degrees, new Metadata("Oslo", "EPSG", 8913, String.Empty, String.Empty, "Formerly known as Kristiania or Christiania."));
    
    
  }
}
